
Type.createNamespace('ScriptFX.Reflection');ScriptFX.Reflection.MemberInfoType=function(){};ScriptFX.Reflection.MemberInfoType.prototype = {Field:0,Method:1,Property:2,Event:3}
ScriptFX.Reflection.MemberInfoType.createEnum('ScriptFX.Reflection.MemberInfoType',false);ScriptFX.Reflection.TypeInfoType=function(){};ScriptFX.Reflection.TypeInfoType.prototype = {Class:0,Interface:1,Enumeration:2,FlagsEnumeration:3}
ScriptFX.Reflection.TypeInfoType.createEnum('ScriptFX.Reflection.TypeInfoType',false);ScriptFX.Reflection.ParameterInfo=function(name){this.$0=name;}
ScriptFX.Reflection.ParameterInfo.prototype={$0:null,get_name:function(){return this.$0;}}
ScriptFX.Reflection.FieldInfo=function(name,fieldType,isStatic){ScriptFX.Reflection.FieldInfo.constructBase(this,[0,name,fieldType,isStatic]);}
ScriptFX.Reflection.FieldInfo.prototype={$0:null,get_value:function(){return this.$0;},$1:function($p0){this.$0=$p0;}}
ScriptFX.Reflection.Reflector=function(){}
ScriptFX.Reflection.Reflector.getGlobalTypes=function(){if(!ScriptFX.Reflection.Reflector.$0){var $0=[];var $1=[Object,Boolean,Number,String,Date,Array,Function,RegExp,StringBuilder,EventArgs];var $2=[IDisposable,IEnumerable,IEnumerator,IArray];var $enum1=$1.getEnumerator();while($enum1.moveNext()){var $3=$enum1.get_current();var $4=new ScriptFX.Reflection.TypeInfo(null,0,$3.get_name());$4.$4($3);$0.add($4);}var $enum2=$2.getEnumerator();while($enum2.moveNext()){var $5=$enum2.get_current();var $6=new ScriptFX.Reflection.TypeInfo(null,1,$5.get_name());$6.$4($5);$0.add($6);}ScriptFX.Reflection.Reflector.$0=$0;}return ScriptFX.Reflection.Reflector.$0;}
ScriptFX.Reflection.Reflector.getNamespaces=function(){if(!ScriptFX.Reflection.Reflector.$1){var $0=window.__namespaces;ScriptFX.Reflection.Reflector.$1=[];var $dict1=$0;for(var $key2 in $dict1){var $1={key:$key2,value:$dict1[$key2]};ScriptFX.Reflection.Reflector.$1.add(new ScriptFX.Reflection.NamespaceInfo($1.key,$1.value));}}return ScriptFX.Reflection.Reflector.$1;}
ScriptFX.Reflection.PropertyInfo=function(name,propertyType,isStatic){ScriptFX.Reflection.PropertyInfo.constructBase(this,[2,name,propertyType,isStatic]);}
ScriptFX.Reflection.PropertyInfo.prototype={$0:null,$1:null,get_getAccessor:function(){return this.$0;},get_isReadOnly:function(){return (!this.$1);},get_setAccessor:function(){return this.$1;},$2:function($p0,$p1){this.$0=$p0;this.$1=$p1;}}
ScriptFX.Reflection.EventInfo=function(name,argsType,isStatic){ScriptFX.Reflection.EventInfo.constructBase(this,[3,name,argsType,isStatic]);}
ScriptFX.Reflection.EventInfo.prototype={$0:null,$1:null,get_addAccessor:function(){return this.$0;},get_removeAccessor:function(){return this.$1;},$2:function($p0,$p1){this.$0=$p0;this.$1=$p1;}}
ScriptFX.Reflection.MethodInfo=function(name,returnType,isStatic){ScriptFX.Reflection.MethodInfo.constructBase(this,[1,name,returnType,isStatic]);}
ScriptFX.Reflection.MethodInfo.prototype={$0:false,$1:null,$2:null,get_constructor:function(){return this.$0;},get_method:function(){return this.$1;},get_parameters:function(){return this.$2;},$3:function($p0,$p1){this.$0=$p0;this.$1=$p1;var $0=$p1.toString();var $1=$0.indexOf('(');var $2=$0.indexOf(')');var $3=$0.substring($1+1,$2).trim();var $4=[];if($3.length){var $5=$3.split(',');for(var $6=0;$6<$5.length;$6++){$4[$6]=new ScriptFX.Reflection.ParameterInfo($5[$6].trim());}}this.$2=$4;}}
ScriptFX.Reflection.MemberInfo=function(memberType,name,type,isStatic){this.$0=memberType;this.$1=name;this.$2=type;this.$3=isStatic;}
ScriptFX.Reflection.MemberInfo.prototype={$0:0,$1:null,$2:null,$3:false,get_associatedType:function(){return this.$2;},get_isPublic:function(){return (!this.$1.startsWith('_'))&&(!this.$1.startsWith('$'));},get_isStatic:function(){return this.$3;},get_memberType:function(){return this.$0;},get_name:function(){return this.$1;}}
ScriptFX.Reflection.NamespaceInfo=function(name,typeTable){this.$0=name;this.$1=typeTable;}
ScriptFX.Reflection.NamespaceInfo.prototype={$0:null,$1:null,$2:null,get_name:function(){return this.$0;},getTypes:function(){if(!this.$2){this.$2=[];var $dict1=this.$1;for(var $key2 in $dict1){var $0={key:$key2,value:$dict1[$key2]};var $1=null;var $2=$0.value;if(Type.isClass($2)){$1=new ScriptFX.Reflection.TypeInfo(this,0,$0.key);}else if(Type.isInterface($2)){$1=new ScriptFX.Reflection.TypeInfo(this,1,$0.key);}else if(Type.isEnum($2)){if(Type.isFlagsEnum($2)){$1=new ScriptFX.Reflection.TypeInfo(this,3,$0.key);}else{$1=new ScriptFX.Reflection.TypeInfo(this,2,$0.key);}}if($1){$1.$4($2);this.$2.add($1);}}}return this.$2;}}
ScriptFX.Reflection.TypeInfo=function(parent,typeType,name){this.$0=parent;this.$1=typeType;this.$3=name;}
ScriptFX.Reflection.TypeInfo.prototype={$0:null,$1:0,$2:null,$3:null,get_baseType:function(){return null;},get_fullName:function(){if(this.$0){return this.$0.get_name()+'.'+this.get_name();}return this.get_name();},get_interfaces:function(){return null;},get_isGlobal:function(){return (!this.$0);},get_isPublic:function(){return (!this.$3.startsWith('_'))&&(!this.$3.startsWith('$'));},get_name:function(){return this.$3;},get_typeType:function(){return this.$1;},$4:function($p0){this.$2=$p0;}}
ScriptFX.Reflection.ParameterInfo.createClass('ScriptFX.Reflection.ParameterInfo');ScriptFX.Reflection.MemberInfo.createClass('ScriptFX.Reflection.MemberInfo');ScriptFX.Reflection.FieldInfo.createClass('ScriptFX.Reflection.FieldInfo',ScriptFX.Reflection.MemberInfo);ScriptFX.Reflection.Reflector.createClass('ScriptFX.Reflection.Reflector');ScriptFX.Reflection.PropertyInfo.createClass('ScriptFX.Reflection.PropertyInfo',ScriptFX.Reflection.MemberInfo);ScriptFX.Reflection.EventInfo.createClass('ScriptFX.Reflection.EventInfo',ScriptFX.Reflection.MemberInfo);ScriptFX.Reflection.MethodInfo.createClass('ScriptFX.Reflection.MethodInfo',ScriptFX.Reflection.MemberInfo);ScriptFX.Reflection.NamespaceInfo.createClass('ScriptFX.Reflection.NamespaceInfo');ScriptFX.Reflection.TypeInfo.createClass('ScriptFX.Reflection.TypeInfo');ScriptFX.Reflection.Reflector.$0=null;ScriptFX.Reflection.Reflector.$1=null;
// ---- Do not remove this footer ----
// Generated using Script# v0.4.2.0 (http://projects.nikhilk.net)
// -----------------------------------
